7F07A9B8:	AF4E8	execute camera modes
ADDIU	SP,SP,FF78
SW	S0,0028 (SP)
LUI	S0,8003
ADDIU	S0,S0,6494	;S0=80036494: camera mode
SW	A0,0000 (S0)	;A0->80036494: camera mode
LUI	AT,8003
SW	R0,6498 (AT)	;0->80036498: disable player control
LW	V0,0000 (S0)	;V0=camera mode
ADDIU	V1,R0,0001
SW	RA,002C (SP)
BNE	V1,V0,7F07AA80	;branch if not camera 1
ADDIU	AT,R0,0002
//7F07A9E8:	camera 1 - stationary intro camera
LUI	T6,8003
LW	T6,64C0 (T6)
BEQ	T6,R0,7F07AA70	;branch if 800364C0=0: no selected 06 camera
NOP
JAL	7F0BFC98
NOP
BNEZ	V0,7F07AA70
NOP
JAL	7F0BFC8C	;TRUE if in demos
NOP
BNEZ	V0,7F07AA70
LUI	AT,8003
MTC1	R0,F4
OR	A0,R0,R0
OR	A1,R0,R0
OR	A2,R0,R0
LUI	A3,3F80
JAL	7F0807B0
SWC1	F4,64A4 (AT)
LUI	AT,4270
MTC1	AT,F12
MTC1	R0,F14
JAL	7F080858	;fade to F14 over F12 seconds
NOP
JAL	7000695C
NOP
OR	A0,V0,R0
JAL	7F0BAA64
ADDIU	A1,R0,0001
LUI	S0,8008
ADDIU	S0,S0,A0B0
LW	T7,0000 (S0)
BEQ	R0,R0,7F07B190
SW	R0,0034 (T7)
//7F07AA70:
JAL	7F07A9B8	;calls itself!
ADDIU	A0,R0,0003	;set camera mode 3: rotating intro camera
BEQ	R0,R0,7F07B194
LW	RA,002C (SP)
//7F07AA80:	camera 2 - fade to twirlidig
BNE	V0,AT,7F07AAB8
OR	A0,R0,R0
OR	A1,R0,R0
OR	A2,R0,R0
JAL	7F0807B0
ADDIU	A3,R0,0000
LUI	AT,4270
MTC1	AT,F12
LUI	AT,3F80
MTC1	AT,F14
JAL	7F080858	;fade to F14 over F12 seconds
NOP
BEQ	R0,R0,7F07B194
LW	RA,002C (SP)
//7F07AAB8:	camera 9 - multiplayer intro
ADDIU	AT,R0,0009
BNEL	V0,AT,7F07AB14
ADDIU	AT,R0,0003
MTC1	R0,F0
LUI	AT,8008
SWC1	F0,9E04 (AT)
LUI	AT,C2B4
MTC1	AT,F6
LUI	AT,8008
SWC1	F6,9E08 (AT)
LUI	AT,8008
SWC1	F0,9E0C (AT)
LUI	AT,42A0
MTC1	AT,F8
LUI	AT,8008
JAL	7000695C	;V0=stage#
SWC1	F8,9E10 (AT)
OR	A0,V0,R0
JAL	7F0BAA64
OR	A1,R0,R0
BEQ	R0,R0,7F07B194
LW	RA,002C (SP)
//7F07AB10:	camera 3 - rotating intro camera
ADDIU	AT,R0,0003
BNE	V0,AT,7F07AC7C
OR	A0,R0,R0
LUI	AT,8003
SW	R0,649C (AT)
OR	A1,R0,R0
OR	A2,R0,R0
JAL	7F0807B0
LUI	A3,3F80
LUI	AT,4270
MTC1	AT,F12
MTC1	R0,F14
JAL	7F080858	;fade to F14 over F12 seconds
NOP
JAL	7000695C
NOP
OR	A0,V0,R0
JAL	7F0BAA64
OR	A1,R0,R0
LUI	T8,8003
LW	T8,64AC (T8)
BEQ	T8,R0,7F07AC6C
NOP
JAL	7F0BFC98
NOP
BNEZ	V0,7F07AC6C
NOP
JAL	7F0BFC8C
NOP
BNEZ	V0,7F07AC6C
LUI	AT,8003
MTC1	R0,F12
SW	R0,64A4 (AT)
ADDIU	T9,R0,0001
SW	T9,64A8 (AT)
LUI	AT,3F80
JAL	7F080A10
MTC1	AT,F14
JAL	7F079CF0
NOP
LUI	T2,8003
LW	T1,6514 (T2)
SLL	T1,T1,0x3
ADDU	V0,T1,T2
LH	T3,6518 (V0)
SLL	T3,T3,0x2
ADDU	A1,T3,T2
LW	A1,9D6C (A1)
LUI	S0,8008
ADDIU	S0,S0,A0B0
LW	T5,0000 (S0)
LW	A0,00D4 (T5)
LH	A2,651E (V0)
MTC1	A2,F2
LWC1	F0,1A3C (AT)
CVT.S.W	F2,F2
DIV.SF2,F2,F0
LH	A3,651A (V0)
MTC1	A3,F0
SWC1	F2,0010 (SP)
CVT.S.W	F0,F0
MFC1	A3,F0
LH	A2,651C (V0)
MTC1	A2,F12
OR	A2,R0,R0
CVT.S.W	F12,F12
SWC1	F12,0078 (SP)
JAL	7F06FCA8
SW	R0,0014 (SP)
MTC1	R0,F16
LWC1	F12,0078 (SP)
C.LT.S	F16,F12
NOP
BC1F	7F07AC48
LW	T7,0000 (S0)
MFC1	A1,F12
JAL	7F06FDE8
LW	A0,00D4 (T7)
LW	T7,0000 (S0)
ADDIU	T9,R0,0017
LW	T8,00A8 (T7)
LW	V0,0004 (T8)
SB	T9,0007 (V0)
SB	R0,0008 (V0)
LW	T0,0000 (S0)
BEQ	R0,R0,7F07B190
SW	R0,0034 (T0)
JAL	7F07A9B8
ADDIU	A0,R0,0004
BEQ	R0,R0,7F07B194
LW	RA,002C (SP)
//7F07AC7C:	camera 4 - 1st person
ADDIU	AT,R0,0004
BNEL	V0,AT,7F07AD6C
ADDIU	AT,R0,0005
JAL	7000695C	;V0=stage#
NOP
ADDIU	AT,R0,0036
BNE	V0,AT,7F07ACCC	;branch if not Cuba (36)
LUI	T1,8003
//7F07AC9C:	1st person Cuba
OR	A0,R0,R0
OR	A1,R0,R0
OR	A2,R0,R0
JAL	7F0807B0
LUI	A3,3F80
LUI	AT,3F80
MTC1	AT,F14
MTC1	R0,F12
JAL	7F080858	;fade to F14 over F12 seconds
NOP
BEQ	R0,R0,7F07ACFC
NOP
//7F07ACCC:	1st person normal
LW	T1,649C (T1)	;T1=8003649C: 
OR	A0,R0,R0
OR	A1,R0,R0
BEQ	T1,R0,7F07ACFC
OR	A2,R0,R0
JAL	7F0807B0
LUI	A3,3F80
LUI	AT,4270
MTC1	AT,F12
MTC1	R0,F14
JAL	7F080858	;fade to F14 over F12 seconds
NOP
//7F07ACFC:
JAL	7F09A464	;V0=#players
NOP
SLTI	AT,V0,0002
BNEZ	AT,7F07AD24	;branch if multi
NOP
JAL	7000695C	;V0=stage#
NOP
OR	A0,V0,R0
JAL	7F0BAA64
OR	A1,R0,R0
//7F07AD24:	set initial weapon
LUI	S0,8008
ADDIU	S0,S0,A0B0
LW	T2,0000 (S0)	;T2=cur. BONDdata
LUI	S0,8008
ADDIU	S0,S0,99E0	;S0=800799E0: starting weapons
LW	T3,01C8 (T2)
ADDIU	A0,R0,0001	;A0=1: left hand
BNEZ	T3,7F07AD5C
NOP
JAL	7F05D914	;set weapon A1 into hand A0
LW	A1,0004 (S0)	;A1=left starting weapon
OR	A0,R0,R0	;A0=0: right hand
JAL	7F05D914	;set weapon A1 into hand A0
LW	A1,0000 (S0)	;A1=right starting weapon
//7F07AD5C:
LUI	AT,8003
BEQ	R0,R0,7F07B190
SW	R0,64A0 (AT)	;0->800364A0: start stage time
//7F07AD6C:	camera 5 - unknown: each of three player deaths
ADDIU	AT,R0,0005
BNE	V0,AT,7F07B0A0
OR	A0,R0,R0
MTC1	R0,F18
LUI	AT,8003
OR	A1,R0,R0
SWC1	F18,64A4 (AT)
LUI	AT,8003
SW	V1,64A8 (AT)
OR	A2,R0,R0
JAL	7F0807B0
LUI	A3,3F80
LUI	AT,4270
MTC1	AT,F12
MTC1	R0,F14		;F14=0: fade to black
JAL	7F080858	;fade to F14 over F12 seconds
NOP
LUI	V0,8003
LW	V0,648C (V0)	;V0=8003648C: 
LUI	S0,8008
LUI	T4,8003
BEQ	V0,R0,7F07ADDC
ADDIU	S0,S0,A0B0
LW	T4,6450 (T4)
BEQ	T4,R0,7F07ADDC
NOP
LUI	S0,8008
BEQ	R0,R0,7F07AF48
ADDIU	S0,S0,A0B0
LUI	AT,8003
SW	R0,6448 (AT)
LW	T9,0000 (S0)
OR	T8,T9,R0
ADDIU	T7,T9,0054
LW	AT,0434 (T8)
ADDIU	T8,T8,000C
ADDIU	T9,T9,000C
SW	AT,047C (T9)
LW	AT,042C (T8)
SW	AT,0480 (T9)
LW	AT,0430 (T8)
BNE	T8,T7,7F07ADF0
SW	AT,0484 (T9)
LW	V0,0000 (S0)
LWC1	F4,0414 (V0)
SWC1	F4,0148 (V0)
LW	V0,0000 (S0)
LWC1	F6,0418 (V0)
SWC1	F6,0158 (V0)
LW	V0,0000 (S0)
LWC1	F8,048C (V0)
LW	T0,00A8 (V0)
SWC1	F8,0008 (T0)
LW	V0,0000 (S0)
LWC1	F10,0490 (V0)
LW	T1,00A8 (V0)
SWC1	F10,000C (T1)
LW	V0,0000 (S0)
LWC1	F16,0494 (V0)
LW	T2,00A8 (V0)
SWC1	F16,0010 (T2)
LW	V0,0000 (S0)
LW	T3,0488 (V0)
LW	T4,00A8 (V0)
JAL	7F081790
SW	T3,0014 (T4)
MTC1	R0,F12
NOP
MFC1	A2,F12
JAL	7F080B34
MOV.S	F14,F12
JAL	7F081478
NOP
LUI	AT,3F80
MTC1	AT,F14
MTC1	R0,F12
JAL	7F080A10
NOP
JAL	7F079CF0
NOP
LW	A0,0000 (S0)
JAL	7F06F5AC
ADDIU	A0,A0,0598
LW	A0,0000 (S0)
SW	V0,0038 (SP)
JAL	7F06F5B4
ADDIU	A0,A0,0598
MTC1	R0,F0
LW	T6,0000 (S0)
LUI	AT,3F00
MTC1	AT,F18
LW	A0,00D4 (T6)
MFC1	A3,F0
LW	A1,0038 (SP)
OR	A2,V0,R0
SWC1	F0,0014 (SP)
JAL	7F06FCA8
SWC1	F18,0010 (SP)
LW	T5,0000 (S0)
ADDIU	T8,R0,0018
LW	T7,00A8 (T5)
LW	V1,0004 (T7)
LW	T9,0014 (V1)
SB	T8,0007 (V1)
SB	R0,0008 (V1)
ORI	T0,T9,0001
SW	T0,0014 (V1)
LW	V0,0000 (S0)
LW	A1,00A8 (V0)
LW	A0,00D4 (V0)
JAL	7F06CC0C
ADDIU	A1,A1,0008
JAL	7F089EE4
NOP
LW	T1,0000 (S0)
MFC1	A1,F0
JAL	7F06CD3C
LW	A0,00D4 (T1)
LUI	V0,8003
LW	V0,648C (V0)
BEQ	V0,R0,7F07AFA8
ADDIU	A1,SP,0058
LUI	A0,8003
LW	A0,6450 (A0)
BEQL	A0,R0,7F07AFAC
LW	V0,0000 (S0)
SW	A0,0064 (SP)
LWC1	F4,0008 (A0)
LUI	AT,43FA
MTC1	AT,F0
SWC1	F4,0058 (SP)
LWC1	F6,000C (A0)
OR	A2,A0,R0
SWC1	F6,005C (SP)
LWC1	F8,0010 (A0)
SWC1	F8,0060 (SP)
LWC1	F10,0008 (A0)
SWC1	F10,0048 (SP)
LWC1	F16,000C (A0)
SWC1	F16,004C (SP)
LWC1	F18,0010 (A0)
SWC1	F18,0050 (SP)
BEQ	R0,R0,7F07AFF4
LW	V1,0014 (A0)
LW	V0,0000 (S0)
LUI	AT,4348
MTC1	AT,F0
LW	T2,00A8 (V0)
SW	T2,0064 (SP)
LWC1	F4,03C4 (V0)
SWC1	F4,0058 (SP)
LWC1	F6,03C8 (V0)
SWC1	F6,005C (SP)
LWC1	F8,03CC (V0)
SWC1	F8,0060 (SP)
LWC1	F10,048C (V0)
LW	A2,00A8 (V0)
SWC1	F10,0048 (SP)
LWC1	F16,0490 (V0)
SWC1	F16,004C (SP)
LWC1	F18,0494 (V0)
SWC1	F18,0050 (SP)
LW	V1,0488 (V0)
LW	A0,0064 (SP)
ADDIU	A3,SP,0048
SW	V1,0010 (SP)
JAL	7F07A534
SWC1	F0,0014 (SP)
BEQ	V0,R0,7F07B090
LUI	T3,8003
LW	T3,6510 (T3)
BNEZ	T3,7F07B034
NOP
JAL	70006E7C
ADDIU	A0,R0,002C
LUI	AT,3F00
MTC1	AT,F12
JAL	70009238
NOP
LUI	T4,8003
LW	T4,648C (T4)
LUI	T6,8003
BEQL	T4,R0,7F07B194
LW	RA,002C (SP)
LW	T6,6450 (T6)
BEQL	T6,R0,7F07B194
LW	RA,002C (SP)
JAL	7F09B150
NOP
LUI	A0,8003
LW	A0,6450 (A0)
ADDIU	A3,R0,000D
LW	A2,0014 (A0)
ADDIU	T5,A0,002C
SW	T5,0018 (SP)
SW	R0,001C (SP)
SW	V0,0014 (SP)
SW	R0,0010 (SP)
JAL	7F09C250
ADDIU	A1,A0,0008
BEQ	R0,R0,7F07B194
LW	RA,002C (SP)
JAL	70006930
NOP
BEQ	R0,R0,7F07B194
LW	RA,002C (SP)
//7F07B0A0:	camera 6 - unknown: fade to black after player deaths
ADDIU	AT,R0,0006
BNE	V0,AT,7F07B0DC
OR	A0,R0,R0
OR	A1,R0,R0
OR	A2,R0,R0
JAL	7F0807B0
ADDIU	A3,R0,0000
LUI	AT,4270
MTC1	AT,F12
LUI	AT,3F80
MTC1	AT,F14
JAL	7F080858	;fade to F14 over F12 seconds
NOP
BEQ	R0,R0,7F07B194
LW	RA,002C (SP)
//7F07B0DC:	camera 7 - unknown: respawn for each death scene
ADDIU	AT,R0,0007
BNEL	V0,AT,7F07B108
ADDIU	AT,R0,0008
JAL	7F079CF0	;set up player's character instance
NOP
LUI	S0,8008
ADDIU	S0,S0,A0B0
LW	T7,0000 (S0)
BEQ	R0,R0,7F07B190
SW	R0,0034 (T7)
//7F07B104:	camera 8 - return to 1st person mode from camera
ADDIU	AT,R0,0008
BNEL	V0,AT,7F07B128
ADDIU	AT,R0,000A
JAL	7F07A4A0
NOP
ADDIU	T8,R0,0004
BEQ	R0,R0,7F07B190
SW	T8,0000 (S0)	;80036494=4: switch to camera mode 4
//7F07B124:	camera A - unknown
ADDIU	AT,R0,000A
BNEL	V0,AT,7F07B194
LW	RA,002C (SP)
JAL	7F09A464	;V0=#players
OR	S0,R0,R0	;S0=0: player count
BLEZ	V0,7F07B188	;branch if <=0
NOP
//7F07B140:
JAL	7F09B10C	;set player A0
OR	A0,S0,R0	;A0=S0: player#
OR	A0,R0,R0
OR	A1,R0,R0
OR	A2,R0,R0
JAL	7F0807B0
ADDIU	A3,R0,0000
LUI	AT,4270
MTC1	AT,F12
LUI	AT,3F80
MTC1	AT,F14
JAL	7F080858	;fade to F14 over F12 seconds
NOP
JAL	7F09A464	;V0=#players
ADDIU	S0,S0,0001
SLT	AT,S0,V0
BNEZ	AT,7F07B140	;branch if multi
NOP
//7F07B188:
JAL	7F09B10C	;sets player 0
OR	A0,R0,R0
//7F07B190:	return
LW	RA,002C (SP)
LW	S0,0028 (SP)
ADDIU	SP,SP,0088
JR	RA
NOP
